package tst;

import java.util.Random;

public class Processo {
	 private int id;
	 private int tempoTotalExec;
	 private int tempoRestanteExec;
	 private int estado; // 0-executando, 1-pronto, 2-esperando e 3=finalizado
	 private int prioridade;
	 private int quantum;
	 //
	 private boolean isNovoProcesso;
	 
	 public Processo(int id) {
		 Random r = new Random();
		 this.id = id;
		 this.tempoTotalExec = ( r.nextInt(17)+4 );
		 this.tempoRestanteExec = tempoTotalExec;
		 this.estado = 1;
		 this.prioridade = (r.nextInt(3));
		 //this.quantum = quantum;
		 this.isNovoProcesso = false;
	 }
	 
	 public void decrementarTempoExec(int tempo) {
		 if(tempoRestanteExec > 0) {
		 	this.tempoRestanteExec -= tempo;
		 }
	 }
	 
	 public boolean verificarSeTempoAcabou() {
		 return (this.tempoRestanteExec == 0);
	 }
	 
	 // Gets e Sets
	 
	 /**
	 * @return the id
	 */
	public int getId() {
		return id;
	}
	/**
	 * @param id the id to set
	 */
	public void setId(int id) {
		this.id = id;
	}
	/**
	 * @return the tempoTotalExec
	 */
	public int getTempoTotalExec() {
		return tempoTotalExec;
	}
	/**
	 * @param tempoTotalExec the tempoTotalExec to set
	 */
	public void setTempoTotalExec(int tempoTotalExec) {
		this.tempoTotalExec = tempoTotalExec;
	}
	/**
	 * @return the tempoRestanteExec
	 */
	public int getTempoRestanteExec() {
		return tempoRestanteExec;
	}
	/**
	 * @param tempoRestanteExec the tempoRestanteExec to set
	 */
	public void setTempoRestanteExec(int tempoRestanteExec) {
		this.tempoRestanteExec = tempoRestanteExec;
	}
	/**
	 * @return the estado
	 */
	public int getEstado() {
		return estado;
	}
	/**
	 * @param estado the estado to set
	 */
	public void setEstado(int estado) {
		this.estado = estado;
	}
	/**
	 * @return the prioridade
	 */
	public int getPrioridade() {
		return prioridade;
	}
	/**
	 * @param prioridade the prioridade to set
	 */
	public void setPrioridade(int prioridade) {
		this.prioridade = prioridade;
	}
	/**
	 * @return the quantum
	 */
	public int getQuantum() {
		return quantum;
	}
	/**
	 * @param quantum the quantum to set
	 */
	public void setQuantum(int quantum) {
		this.quantum = quantum;
	}

	/**
	 * @return the isNovoProcesso
	 */
	public boolean isNovoProcesso() {
		return isNovoProcesso;
	}

	/**
	 * @param isNovoProcesso the isNovoProcesso to set
	 */
	public void setNovoProcesso(boolean isNovoProcesso) {
		this.isNovoProcesso = isNovoProcesso;
	}
	 
	 
	 
}
